// 导入路由实例
import router from '@/router'
// 导入 stroe实例
import store from '@/store'
// 导入页面进度条
import nprogress from 'nprogress'
// 导入nprogress的css样式表
import 'nprogress/nprogress.css'
// 定义白名单无权限跳转的页面
const whiteList = ['/login', '/404']
  // 前置守卫
router.beforeEach(async(to, from, next) => {
  // 路由跳转加载进度条
  nprogress.start()
    // 判断有无token
  if (store.getters.token) {
    // 判断用户是否跳转登录页
    if (to.path === '/login') {
      // 返回到首页
      next('/')
    } else {
      // 判断是否有用户信息资料
      if (!store.state.user.userInfo.userId) {
        // 获取用户信息资料
        await store.dispatch('user/getUserInfo')
      }
      next() // 放行
    }
  } else {
    // 判断用户是否访问白名单的页面
    if (whiteList.indexOf(to.path) > -1) {
      next() // 放行
    } else {
      next('/login') // 跳转至登录页
    }
  }
  nprogress.done() // 关闭加载进度条
})

// 后置钩子
router.afterEach((to, from) => {
  nprogress.done()
})